import wxValidate from 'wechat-validate'
const app = getApp()
Page({
  // 混入到当前页面
  behaviors: [wxValidate],
  onLoad(query) {
    this.redirectURL = query.redirectURL
    this.type = query.type
  },
  data: {
    // 默认状态不展示倒计时组件
    countDownVisible: false,
    mobile: '13855555555',
    code: '123456',
  },
  rules: {
    mobile: [
      { required: true, message: '请填写手机号码!' },
      { pattern: /^1[3-8]\d{9}$/, message: '请填写正确的手机号码!' },
    ],
    code: [
      {
        required: true,
        message: '请填写验证码',
      },
    ],
  },
  async handleLogin() {
    // 1、表单校验 >> 校验整个表单，自动提示错误
    if (!this.validate()) return
    // 2、调用接口开始登录
    const { code, data } = await wx.http.post('/login', {
      mobile: this.data.mobile,
      code: this.data.code,
    })
    if (code !== 10000) return wx.utils.toast('登录失败')
    // 3、token存储起来
    app.setToken('token', data.token)
    app.setToken('refreshToken', data.refreshToken)
    // 4、跳转到回跳之前的页面
    // 5、TODO:处理回跳地址
    // console.log(this.redirectURL)
    wx.redirectTo({
      url: this.redirectURL,
    })
    // if (this.type === 'tab') {
    //   wx.switchTab({
    //     url: this.redirectURL,
    //   })
    // } else {
    //   wx.navigateTo({
    //     url: this.redirectURL, // 回跳到登录之前的页面
    //   })
    // }
  },
  async changeCountDownVisible() {
    // 校验表单
    const { valid, message } = this.validate('mobile')
    // 如果校验不通过，提示错误消息内容
    if (!valid) return wx.utils.toast(message)
    // TODO: 校验通过，走成功处理逻辑
    // console.log(res)
    // 倒计时展示出来

    // 发送验证码
    const { code } = await wx.http.get('/code', { mobile: this.data.mobile })
    console.log(code)
    if (code !== 10000) return wx.utils.toast('发送验证码失败')
    this.setData({
      countDownVisible: true,
    })
    wx.utils.toast('发送成功')
  },
  countDownChange(ev) {
    this.setData({
      // 实时获取及时的事件，赋值给timeData,用于页面展示实时时间
      timeData: ev.detail,
      // 如果时间小于或者等于0，关闭倒计时组件
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
})
